Thực hành các kỹ năng DOM manipulation và Event handling cơ bản
1. Copy từng bài: Nhấn nút "📋 Copy Bài Này" → Paste vào file .html mới → Viết code trong function
2. Demo: Nhấn "Demo" để xem kết quả mong đợi, nhấn "Thử nghiệm" để test code của bạn
3. Dễ hiểu: Tập trung vào DOM events: click, hover, input không dùng RegExp hay LocalStorage
Dataset là một thuộc tính đặc biệt trong DOM cho phép bạn lưu trữ dữ liệu tùy chỉnh trong các HTML element thông qua data-* attributes.
<div data-category="laptop">MacBook</div>
<div data-price="1500000">Sản phẩm</div>
<div data-user-id="123">User</div>
// Lấy giá trị
element.dataset.category // "laptop"
element.dataset.price // "1500000"
element.dataset.userId // "123"
// Đặt giá trị
element.dataset.category = "phone";
1. Lọc sản phẩm theo loại:
// Lọc tất cả sản phẩm laptop
const laptops = document.querySelectorAll('[data-category="laptop"]');
laptops.forEach(item => item.style.display = 'block');
2. Lưu ID để xử lý events:
<button data-user-id="123" onclick="deleteUser(this.dataset.userId)">
Xóa user
</button>
data-user-id trong HTML thành dataset.userId trong JS (camelCase)parseInt(element.dataset.price)💡 Tip: Dataset rất hữu ích cho việc lưu trữ metadata và xử lý events trong các bài tập DOM!
📋 Yêu cầu: Viết hàm filterTable(category)
category (string) - loại sản phẩm cần lọc ('all', 'laptop', 'phone', 'tablet')querySelectorAll(), style.display, data attributes| 📦 Sản phẩm | 🏷️ Loại | 💰 Giá | ⭐ Đánh giá |
|---|---|---|---|
| MacBook Pro M3 | 💻 Laptop | 45,000,000đ | ⭐⭐⭐⭐⭐ |
| iPhone 15 Pro | 📱 Phone | 28,000,000đ | ⭐⭐⭐⭐⭐ |
| iPad Pro | 📟 Tablet | 25,000,000đ | ⭐⭐⭐⭐ |
| Dell XPS 13 | 💻 Laptop | 35,000,000đ | ⭐⭐⭐⭐ |
| Samsung Galaxy S24 | 📱 Phone | 22,000,000đ | ⭐⭐⭐⭐ |
| Samsung Tab S9 | 📟 Tablet | 18,000,000đ | ⭐⭐⭐⭐ |
| ASUS ROG Strix | 💻 Laptop | 40,000,000đ | ⭐⭐⭐⭐⭐ |
| Google Pixel 8 | 📱 Phone | 18,000,000đ | ⭐⭐⭐⭐ |
📋 Yêu cầu: Viết 3 hàm quản lý giỏ hàng
1. addToCart(productId, quantity):
2. removeFromCart(productId):
3. updateCartDisplay():
Bonus: Animation khi thêm vào giỏ, local storage
Giỏ hàng trống
📋 Yêu cầu: Viết 4 hàm quản lý danh sách sinh viên
1. addStudent():
2. deleteStudent(id):
3. searchStudents():
4. sortStudents(field):
|
👤 Họ Tên
|
🎂 Tuổi
|
🏫 Lớp
|
⚡ Thao tác |
|---|---|---|---|
| � Chưa có sinh viên nào. Hãy thêm sinh viên đầu tiên! | |||